home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / C64 / E-Education / (c)ed19.d64 / artillery (.txt) < prev    next >
Commodore BASIC  |  2007-02-04  |  9KB  |  348 lines

  1. 1 GOTO910
  2. 2 REM ** ML STOP KEY DISABLE **
  3. 3 PRINT"x[169]=[141][169][141]X` [234][255][169][255][133][145]L4[234]x[169]1[141][169][234][141]X`
  4. 4 [153]"xhhh+hNOThhhhhhhPRINT#HRUNHX`111"
  5. 5 [153]"hhhhhhh`1"
  6. 6 [143] ** 4 - POP ML SUBROUTINE **
  7. 10 [143] **GENERAL INPUT ROUTINE **
  8. 15 :
  9. 30 :
  10. 35 [143] +++ INPUT SECTION +++
  11. 40 [151]UO,0:UR$[178]"":UI$[178]""
  12. 42 [139]UL[178]0[167]UL[178]80
  13. 45 [151]UC,0
  14. 50 [161]UI$:[139]UI$[178]""[167]50
  15. 55 [139]UI$[178][199](13)[175][195](UR$)[177][178]1[167][151]UC,1:[153]" CMD";:[137]85
  16. 60 [139]UI$[178][199](20)[167]105
  17. 62 [139] [195](UR$)[178][177]UL[167]50
  18. 65 [141]120:[143] CHECK FOR VALID CHARACTER
  19. 70 UR$[178]UR$[170]UI$
  20. 75 [153]UI$;
  21. 80 [137]50
  22. 85 [143] +++ CHECK FOR HELP REQUEST +++
  23. 90 [139]UR$[178]UX$[167]195:[143] EXIT TO HELP ROUTINE
  24. 95 [139]UF[178]1[167][141]240
  25. 100 UF[178]0:[153]:[142]
  26. 102 [143] ++ CHECK DELETE ++
  27. 105 [139][195](UR$)[179]1[167]50
  28. 110 UR$[178][200](UR$,[195](UR$)[171]1)
  29. 115 [153]"CMD  CMDCMD";:[137]50
  30. 120 [143] ++ CHECK FOR VALID CHARACTERS ++
  31. 125 [139][195](US$)[178]0[167]150
  32. 130 [129]US[178]1[164][195](US$)
  33. 135 [139]UI$[178][202](US$,US,1)[167][142]
  34. 140 [130]
  35. 145 UI$[178]"":[142]
  36. 150 [143] ** STANDARD INPUT **
  37. 152 [139][198](UI$)[178]46[167][142]
  38. 155 [139]UI$[178][199](32)[167][142]
  39. 160 [139][198](UI$)[179]48[176][198](UI$)[177]57[167]170
  40. 165 [142]
  41. 170 [139][198](UI$)[179]65[176][198](UI$)[177]90[167]180
  42. 175 [142]
  43. 180 [139][198](UI$)[179]193[176][198](UI$)[177]218[167]UI$[178]"":[142]
  44. 185 [139][194](UT)[178]UU%[167]UI$[178][199]([198](UI$)[171]128):[142]
  45. 187 [142]
  46. 190 UI$[178]"":[142]
  47. 195 UF[178]1:[143] +++ HELP ROUTINE EXIT +++
  48. 197 [141]250
  49. 200 [141]245
  50. 205 [129]UQ[178]UB[164](UB[170]987)
  51. 210 UQ%(UQ[171]UB)[178][194](UQ):[130]:[153]"LOAD"
  52. 215 UZ[178]1:UV%[178][194](UT)
  53. 216 [137]300
  54. 217 UZ[178]0:US$[178]UJ$:UG$[178]UK$:UP[178]UJ:UL[178]UK:[139][194](50003)[178]0[167][151]53281,6:[151]53280,6
  55. 220 UT$[178]UL$:[151]53281,1:[153]"LOAD";:[151]53281,6:[151]UT,UV%:[129]UQ[178]UB[164](UB[170]987)
  56. 225 [151]UQ,UQ%(UQ[171]UB):[130]
  57. 230 [151]U1,U1%
  58. 232 [151]U2,U2%
  59. 233 [151]U4,U4%
  60. 234 [151]U3,U3%[171]1
  61. 235 [137]35
  62. 240 UD%[178]((U2%[172]256[170]U1%[170]U3%)[171]UB)[173]40:[153][200](UD$,UD%[170]1):[142]
  63. 245 [153][200](UD$,24);[163]68);"HELP COMINGWAIT";:[142]
  64. 250 U1%[178][194](U1):U2%[178][194](U2):U3%[178][194](U3):U4%[178][194](U4)
  65. 251 UJ$[178]US$:UK$[178]UG$:UL$[178]UT$:UJ[178]UP:UK[178]UL
  66. 255 [142]
  67. 299 :
  68. 300 [143] DERIVED FROM COMMODORE ONTARIO EDUCATIONAL SOFTWARE PROJECT 1983
  69. 310 [143] PROJECT DIRECTOR: FRANK WINTER
  70. 320 [143] PROGRAM NAME: ARTILLERY
  71. 330 [143] WRITTEN BY - UNKNOWN
  72. 340 [143] UPDATED BY BILL CUMBERLAND
  73. 399 :
  74. 400 [143] ** INSTRUCTIONS **
  75. 405 [153]"LOAD":[151]UT,UL%:[151]53281,11:[151]53280,11
  76. 410 [153]"           RIGHT$(null)(null)(null)(null)(null)LEN(null)RIGHT$(null)(null)(null)
  77. 412 PRINT" [212]HIS IS A GAME IN WHICH 2 PLAYERS SHOOT";
  78. 413 PRINT" AT EACH OTHER ACROSS A MOUNTAIN."
  79. 414 PRINT" [193]T EACH TURN, THE PLAYER ENTERS THE "
  80. 415 PRINT" ANGLE TO FIRE (1-90) AND THE[160]NUMBER OF  BAGS OF ";
  81. 416 PRINT" POWDER (1 TO 15 [194][193][199][211]).
  82. 495 [141]820:[142]
  83. 499 :
  84. 590 [129]TM[178]1[164]500:[130]:[142]
  85. 591 [129]TM[178]1[164]1000:[130]:[142]
  86. 592 [129]TM[178]1[164]2000:[130]:[142]
  87. 595 [129]TM[178]1[164]5000:[130]:[142]
  88. 599 :
  89. 800 [153]"LOAD";:[151]UT,UU%:[151]53280,0:[151]53281,0:[151]646,3
  90. 801 [153]"      A TPUG EDUCATIONAL PROGRAM":[141]590
  91. 802 [153]"           FOR C 64 COMPUTERS":[141]591
  92. 803 [153]"                                        WAIT";
  93. 804 [153]"                                        WAIT";
  94. 805 [153]"                                        WAIT";
  95. 806 [153]"               ARTILLERY                WAIT";
  96. 807 [153]"                                        WAIT";
  97. 808 [153]"                                        WAIT";
  98. 809 [153]"                                        WAIT":[141]591
  99. 810 [153]"          INSTRUCTIONS?  Y/N
  100. 811 GETR$:IFR$<>"Y"ANDR$<>"N"THEN811
  101. 812 IFR$="Y"THENGOSUB400
  102. 813 PRINT"[147]  AND AWAY WE GO.........":GOSUB591
  103. 814 GOTO1000
  104. 820 GOSUB591
  105. 822 POKEUO,0:PRINTLEFT$(UD$,24);"[154] [208]RESS [211][208][193][195][197] [194][193][210] TO CONTINUE [146][155]"
  106. 824 GETUI$:IFUI$<>" "THEN824
  107. 826 RETURN
  108. 830 GOSUB591
  109. 835 POKEUO,0:PRINTLEFT$(UD$,24);"[153] PRESS SPACE BAR TO CONTINUE [146][155]"
  110. 840 GETUI$:IFUI$<>" "THEN840
  111. 845 RETURN
  112. 850 REM ** PAGE DESIGN ROUTINE **
  113. 852 UP=UP+1
  114. 855 PRINT"[147]"LEFT$(UT$+UP$,21);RIGHT$(UP$+UG$+STR$(UP),18)
  115. 860 PRINT" --------------------------------------"
  116. 864 IFUH<>0THEN870
  117. 865 PRINTLEFT$(UD$,24);LEFT$(UP$,7);"HELP - PRESS   H <RETURN>"
  118. 870 UH=0:PRINT"":RETURN
  119. 875 REM ** PLEASE WAIT REMARK **
  120. 880 PRINTLEFT$(UD$,24);"           ONE MOMENT PLEASE...     "
  121. 885 RETURN
  122. 900 UT=59468:UU%=12:UL%=14:UP%=1146:UM=32768:UO=158:POKE 50003,0
  123. 902 UB=1024:U1=209:U2=210:U3=211:U4=214:UC=204:UU=2048
  124. 903 UB=1024:U1=209:U2=210:U3=211:U4=214:UC=204:UU=2048
  125. 904 UT=53272:UU%=21:UL%=23:UP%=2139:UM=1024:UO=198
  126. 905 UD$=""
  127. 906 UP$="                                       "
  128. 907 UT$=" [193]RTILLERY   [160][160][160][160][160]":REM PLACE PROGRAM TITLE HERE !!!!!!!!!!!!!!!!!***
  129. 908 DIMA(100),B(100),H(39),A1(2),B1(2),A2(2),B2(2),L(2)
  130. 909 RETURN
  131. 910 REM ** SET VARIABLES **
  132. 915 GOSUB900
  133. 920 REM ** CHECK FOR 8032 **
  134. 925 PRINT"[147]  "
  135. 937 PRINT"[147]":IFPEEK(50003)=0THEN962
  136. 940 REM ** BASIC 2.0  OR  4.0  OR  C-64 SETUP **
  137. 941 POKE1075,133:POKE1076,144:POKE1077,234:POKE1079,4:POKE1080,133:POKE1081,145
  138. 942 POKE1091,155:POKE1098,133:POKE1099,144:POKE1100,234:POKE1103,133
  139. 943 POKE1104,145:POKE1105,234:POKE1082,234
  140. 945 IFPEEK(50003)<>160THEN955
  141. 950 POKE1093,88:POKE1094,228:POKE1097,85:POKE1102,228:GOTO965
  142. 955 IFPEEK(50003)<>1THEN990
  143. 960 POKE1093,49:POKE1094,230:POKE1097,46:POKE1102,230:GOTO965
  144. 962 POKE2099,141:POKE2100,20:POKE2101,3:POKE2103,8:POKE2104,141:POKE2105,21
  145. 963 POKE2106,3:POKE2115,145:POKE2117,52:POKE2118,234:POKE2121,49:POKE2122,141
  146. 964 POKE2123,20:POKE2124,3:POKE2126,234:POKE2127,141:POKE2128,21:POKE2129,3
  147. 965 SYSUU+48:REM DISABLE STOP KEY
  148. 970 GOSUB800:REM TITLE
  149. 980 GOTO300:REM MENU
  150. 1000 PRINT"[147]";:RESTORE:POKE53281,0:POKE53280,0
  151. 1135 POKEUT,UL%
  152. 1140 REM GOSUB 2890
  153. 1144 CLR:GOSUB900
  154. 1270 PRINT"[147]":POKE UT,UU%:REM RESET TO GRAPHICS
  155. 1280 Z$=" [145][157]":FOR X=1 TO 5:Z$=Z$+Z$:NEXTX
  156. 1290 A$="":FOR X=1 TO 6:A$=A$+A$:NEXTX:B$="":FOR X=1 TO 5:B$=B$+B$:NEXTX
  157. 1300 N=2
  158. 1310 REM   CONSTRUCT MOUNTAIN
  159. 1315 PRINT"[147]";LEFT$(UD$,23);"BUILDING MOUNTAIN..."
  160. 1320 X1=INT(6+RND(1)*8)
  161. 1330 X2=INT(25+RND(1)*8)
  162. 1340 L(1)=INT(3+(X1-3)*RND(1))
  163. 1350 L(2)=INT(X2+1+(36-X2)*RND(1))
  164. 1360 H9=RND(1)*11+1
  165. 1370 FOR I=1 TO X1:H(I)=H9:NEXTI
  166. 1380 H9=RND(1)*11+1
  167. 1390 FOR I=X2 TO 39:H(I)=H9:NEXTI
  168. 1400 IF ABS(H(1)-H(39))<4 THEN GOTO 1360
  169. 1410 X3=X1+INT(RND(1)*(X2-X1-6))+3
  170. 1420 H(X3)=RND(1)*11+9
  171. 1430 D1=(H(X3)-H(1))/2
  172. 1440 D2=(H(X3)-H(39))/2
  173. 1450 IF D1*D2<=0 THEN GOTO 1610
  174. 1460 J=-180
  175. 1470 K=180/(X3-X1+1)
  176. 1480 H9=H(1)+D1
  177. 1490 FOR I=X1+1 TO X3-1
  178. 1500 J=J+K
  179. 1510 H(I)=H9+COS(J*(null)/180)*D1
  180. 1520 NEXTI
  181. 1530 J=0
  182. 1540 K=180/(X2-X3+1)
  183. 1550 H9=H(39)+D2
  184. 1560 FOR I=X3+1 TO X2-1
  185. 1570 J=J+K
  186. 1580 H(I)=H9+COS(J*(null)/180)*D2
  187. 1590 NEXTI
  188. 1600 GOTO 1690
  189. 1610 D=(H(1)-H(39))/2
  190. 1620 J=0
  191. 1630 K=180/(X2-X1+1)
  192. 1640 H9=H(39)+D
  193. 1650 FOR I=X1+1 TO X2-1
  194. 1660 J=J+K
  195. 1670 H(I)=H9+COS(J*(null)/180)*D
  196. 1680 NEXT I
  197. 1690 PRINT"";
  198. 1700 W=INT(100*(RND(1)-.5))
  199. 1710 PRINTLEFT$(B$,22);
  200. 1720 FOR I=1 TO 39:H(I)=INT(H(I)+.5):NEXTI
  201. 1730 FOR X=1 TO 39:IFX=1 THEN GOTO 1750
  202. 1740 PRINT"";
  203. 1750 PRINTMID$(Z$,1,H(X)*4);
  204. 1760 FOR Z=1 TO H(X):PRINT"";:NEXTZ
  205. 1770 NEXT X:PRINT"[146]"
  206. 1780 PRINT"";
  207. 1790 PRINTMID$(B$,1,22-H(1));:IF L(1)=1 THEN GOTO 1810
  208. 1800 PRINTMID$(A$,1,L(1)-1);
  209. 1810 PRINT"^";
  210. 1820 PRINT"";
  211. 1830 PRINTMID$(B$,1,22-H(39));
  212. 1840 PRINTMID$(A$,1,L(2)-1);
  213. 1850 PRINT"^";
  214. 1855 PRINTLEFT$(UD$,23)"PLAYER 1[146]PLAYER 2[146]"
  215. 1860 PRINT"";
  216. 1870 PRINTMID$(B$,1,24);
  217. 1880 PRINT"       ";
  218. 1890 K=1
  219. 1900 IFW>=0 THEN GOTO 1930
  220. 1910 PRINT-W;" MPH WIND <-----  ";
  221. 1920 GOTO 1950
  222. 1930 PRINTW;" MPH WIND ------>  ";
  223. 1940 PRINT"";
  224. 1950 PRINT"";:N=3-N:IF N=1 THEN GOTO 2010
  225. 1960 PRINTLEFT$(UD$,23)" PLAYER 1 [146]*PLAYER 2*"
  226. 1965 PRINT"";LEFT$(A$,23);"ANGLE (1-90) [191] [157][157]";:UL=2
  227. 1970 US$="0123456789H":GOSUB35:E=VAL(UR$):IF E>90 THEN PRINT"[157][157][191] [157][157]";:GOTO 1970
  228. 1975 PRINT"";:IFE=0 THEN GOTO 1965
  229. 1980 PRINTLEFT$(B$,1);LEFT$(A$,23);"POWDER(1-15)   [157][157][191][157]";:UL=2:US$="0123456789
  230. 1990 US$[178]US$[170]"H":[141]35:V[178][197](UR$):[139] V[177]15 [176] V[179][178]0 [167] [137] 1975
  231. 2000 [137] 2040
  232. 2010 [153]"                                       ";"                   ";
  233. 2015 [153]"                                                                  ";
  234. 2020 [153][200](UD$,23)"*PLAYER 1* PLAYER 2 WAIT"
  235. 2025 [153]"                                        ";"ANGLE (1-90) SIN CMDCMD";:UL[178]2
  236. 2030 US$[178]"0123456789H":[141]35:E[178][197](UR$):[139] E[177]90 [176] E[178]0 [167] [137] 2025
  237. 2032 [153]"POWDER (1-15)    CMDCMDCMDSINCMD";:[141]35
  238. 2035 V[178][197](UR$):[139]V[177]15 [176] V[179][178]0 [167] [137] 2032
  239. 2040 K[178]K[170]1:[139] E[178]0 [167] [137] 1310
  240. 2050 A2(N)[178]A2(N)[171]2.86
  241. 2060 E[178]90[171]E
  242. 2070 [139] N[178]1 [167] [137] 2090
  243. 2080 E[178][171]E
  244. 2090 X1[178]L(N)
  245. 2100 Y1[178]H(L(N))[170]1
  246. 2110 T[178]0:M[178]0
  247. 2120 V1[178][191](E[172][255][173]180)[172]V
  248. 2130 V2[178][190](E[172][255][173]180)[172]V[172].7
  249. 2140 T[178]T[170].5:M[178]M[170]1
  250. 2150 V1[178]V1[170](V1[170]W[172].5)[173]1500
  251. 2160 X[178]X1[170](V1[170]W[172].5[173]50)[172]T
  252. 2170 X[178][181](X[170].5)
  253. 2180 Y[178]Y1[170](V2[171]T[173]3)[172]T
  254. 2190 Y[178][181](Y[170].5)
  255. 2200 Z[178]23[171]Y:[153]"";
  256. 2210 A(M)[178]Z:B(M)[178]X:[139] X[177]39 [176] X[179]1 [167] [137] 2530
  257. 2220 [139]Y[171]H(X)[179][178]0 [167] [137] 2520
  258. 2230 [139] Z[179]0 [167] [137] 2290
  259. 2240 [139] Z[178]0 [167] [137] 2260
  260. 2250 [153][200](B$,Z);
  261. 2260 [139] X[178]1 [167] [137] 2280
  262. 2270 [153][200](A$,X[171]1);
  263. 2280 [153]"(null)"
  264. 2290 [153]"";
  265. 2300 [139] M[171]4[179]1 [167] [137] 2140
  266. 2310 [139] A(M[171]4)[178]0 [167] [137] 2340
  267. 2320 [139] A(M[171]4)[179]0 [176] B(M[171]4)[179][178]0 [167] [137] 2140
  268. 2330 [153][200](B$,A(M[171]4));
  269. 2340 [153][200](A$,B(M[171]4)[171]1);
  270. 2350 [153]" ";
  271. 2360 [153]"";
  272. 2370 [137] 2140
  273. 2380 [139] M[178]1 [167] [137] 2140
  274. 2390 [139] B(M)[179]1 [176] B(M)[177]39 [167] [137] 1950
  275. 2400 [143] LINES 2410 AND 2440 DETERMINE HIT. CHANGE '1.5' TO CHANGE DIFFICULTY.
  276. 2410 [139] [182](B(M[171]1)[171]L(N))[179]1.5 [167] [137] 2430
  277. 2420 [137] 2440
  278. 2430 [139] T[177]1 [167] [137] 2710
  279. 2440 [139] [182](B(M[171]1)[171]L(3[171]N))[179]1.5 [167] [137] 2790
  280. 2450 [139] T[179]1 [167] [137] 2140
  281. 2460 [137] 2650
  282. 2470 [153]"ON"
  283. 2480 [153]"      ANOTHER GAME ? (Y/N) SINCMD";
  284. 2490 UL[178]1:US$[178]"YN":[141]35
  285. 2500 [139] UR$[178]"Y" [167] 1000
  286. 2502 [140]
  287. 2504 [153]"LOAD  RETURNING TO THE DISK MENU
  288. 2506 LOAD"MENU",8
  289. 2508 RUN
  290. 2510 END
  291. 2520 PRINT"";
  292. 2530 FOR J=4 TO 1 STEP -1
  293. 2540 IF M-J<=0 THEN GOTO 2620
  294. 2550 IF A(M-J)=0 THEN GOTO 2580
  295. 2560 IF A(M-J)<0 OR B(M-J)<=0 THEN GOTO 2620
  296. 2570 PRINT LEFT$(B$,A(M-J));
  297. 2580 IF B(M-J)=1 THEN GOTO 2600
  298. 2590 PRINTLEFT$(A$,B(M-J)-1);
  299. 2600 PRINT" ";
  300. 2610 PRINT"";
  301. 2620 NEXT J:IF M=1 THEN GOTO 2830
  302. 2630 IF B(M)<1 OR B(M)>39 THEN GOTO 2840
  303. 2640 GOTO 2380
  304. 2650 IF B(M-1)=1 THEN GOTO 2670
  305. 2660 PRINTLEFT$(A$,B(M-1)-1);
  306. 2670 PRINTLEFT$(B$,23-H(B(M-1)));
  307. 2680 FOR Z=1 TO 3: PRINT"[145][157][205][215][206][145][157][157][157][205]![206]";:FOR X=1 TO 5:NEXTX
  308. 2690 PRINT"[157][157][157]   [145][157][157][157]   [157][157]";:FOR X=1 TO 5:NEXT X:NEXT Z:PRINT"[185]";
  309. 2700 GOTO 2830
  310. 2710 PRINT"";
  311. 2720 PRINTLEFT$(A$,L(N)-1);
  312. 2730 PRINTLEFT$(B$,24-H(L(N)));
  313. 2740 FOR Z=1 TO10:PRINT"[145][157][223][209][169][146][145][157][157][157][157][205][191]![191][146][206][157][157][157][157][157][145][205][205]![206][206][157][157]";"[157]";
  314. 2750 PRINT" [157][157][157][145]     [157][157][157][157][157][145]     [157][157][157][145]";
  315. 2760 FOR X=1 TO 2:NEXT X:NEXT Z
  316. 2770 FORX=1 TO50:NEXT X
  317. 2780 GOTO 2470
  318. 2790 PRINT"";
  319. 2800 PRINTLEFT$(A$,L(3-N)-1);
  320. 2810 PRINTLEFT$(B$,24-H(L(3-N)-1));
  321. 2820 GOTO 2740
  322. 2830 REM
  323. 2840 W=W+INT(10*(RND(1)-.5))
  324. 2850 PRINT"";LEFT$(B$,24);"        ";
  325. 2860 IF W>=0 THEN PRINT"   [157][157][157]";W;" MPH WIND ----->    ";:GOTO 1950
  326. 2870 PRINT"   [157][157][157]";-W;" MPH WIND <-----    ";:GOTO 1950
  327. 2880 RETURN
  328. 2890 REM
  329. 2900 PRINT "[147]";TAB(15);"[193]RTILLERY":PRINT:PRINT
  330. 2910 PRINT TAB(11);"[195]REATIVE [195]OMPUTING"
  331. 2920 PRINT TAB(13);"[208].[207]. BOX 789-M"
  332. 2930 PRINT TAB(6);"[205]ORRISTOWN, [206]EW [202]ERSEY 07960"
  333. 2931 PRINT"[206][207][212][197]:[208]RESS < [210][197][212][213][210][206] > AFTER[146]"
  334. 2932 PRINT"[197]ACH RESPONSE FROM THE KEYBOARD[146]"
  335. 2934 FORB1=1TO10
  336. 2936 PRINTLEFT$(UD$,21);"[206][207][212][197]:[208][210][197][211][211] [146]< [210][197][212][213][210][206] > AFTER [146]"
  337. 2937 FORB2=1TO300:NEXT:B2=0
  338. 2938 PRINTLEFT$(UD$,21);"[206][207][212][197]:[208][210][197][211][211] < [210][197][212][213][210][206] > AFTER [146]"
  339. 2939 FORB2=1TO300:NEXT:B2=0
  340. 2940 NEXT
  341. 2945 FOR B1=1TO2000:NEXT B1
  342. 2950 B1=0
  343. 2970 RETURN
  344. 60500 PRINT"[146][147]LOAD"CHR$(34)"C64.MENU"CHR$(34)",8"
  345. 60510 PRINT"":POKE198,4:POKE631,13:POKE632,82:POKE633,213:POKE634,13:END
  346. 60520 REM WHC  90:06:01
  347.